#ifndef SKINMANAGER_H
#define SKINMANAGER_H

#include <QObject>
#include <QString>
#include <QApplication>
#include <QFile>
#include <QMap>

// 皮肤管理器
class SkinManager : public QObject
{	
	Q_OBJECT

public:
	static SkinManager* instance();
	void loadSkin(const QString& skinName);
	bool importCustomSkin(const QString& qssFilePath);

	QString currentSkin() const { return m_currentSkin; }

signals:
    void skinSwitched(const QString& skinName);
	
private:
	explicit SkinManager(QObject *parent = nullptr);
	// 禁止拷贝/赋值
    SkinManager(const SkinManager&) = delete;
    SkinManager& operator=(const SkinManager&) = delete;

	// func
	QByteArray loadQssFile(const QString& qssPath);
	void applyGlobalStyle(const QString& qssContent);

private:
    QString m_currentSkin;                // 当前皮肤名称（默认default）
    QMap<QString, QString> m_builtinSkins;// 内置皮肤路径映射（名称→QSS路径）
    const QString m_defaultSkin = "default"; // 默认皮肤名称

};



#endif	// SKINMANAGER_H